package com.wanjia.bpsapi.util;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.util.List;

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class PageUtil {

    /**
     * 构建分页数据模型
     *
     * @param pageNo   分页-页码
     * @param pageSize 分页-尺寸
     * @param total    总数
     * @param records  分页数据
     * @param <T>      分页数据类型
     * @return 分页数据模型
     */
    public static <T> Page<T> page(Integer pageNo, Integer pageSize, Long total, List<T> records) {
        if (pageNo == null || pageSize == null || total == null || records == null) {
            throw new NullPointerException("分页参数不能为空");
        }

        Page<T> page = new Page<>(pageNo, pageSize);
        page.setRecords(records);
        page.setTotal(total);
        long pages = total / pageSize;
        if (total - pages * pageSize > 0) {
            pages++;
        }
        page.setPages(pages);
        return page;
    }
}
